package com.entmanage.base.hrm.service;


import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.entmanage.base.hrm.domain.HrmEmployee;

import java.util.List;

/**
 * 员工基本信息主Service接口
 *
 * @author lsq
 * @date 2025-07-24
 */
public interface IHrmEmployeeService
{
    /**
     * 查询员工基本信息主
     *
     * @param empId 员工基本信息主主键
     * @return 员工基本信息主
     */
    public HrmEmployee selectHrmEmployeeByEmpId(Long empId);

    /**
     * 查询员工基本信息主列表
     *
     * @param hrmEmployee 员工基本信息主
     * @return 员工基本信息主集合
     */
    public List<HrmEmployee> selectHrmEmployeeList(HrmEmployee hrmEmployee);

    /**
     * 新增员工基本信息主
     *
     * @param hrmEmployee 员工基本信息主
     * @return 结果
     */
    public int insertHrmEmployee(HrmEmployee hrmEmployee);

    /**
     * 修改员工基本信息主
     *
     * @param hrmEmployee 员工基本信息主
     * @return 结果
     */
    public int updateHrmEmployee(HrmEmployee hrmEmployee);

    /**
     * 批量删除员工基本信息主
     *
     * @param empIds 需要删除的员工基本信息主主键集合
     * @return 结果
     */
    public int deleteHrmEmployeeByEmpIds(Long[] empIds);

    /**
     * 删除员工基本信息主信息
     *
     * @param empId 员工基本信息主主键
     * @return 结果
     */
    public int deleteHrmEmployeeByEmpId(Long empId);


    HrmEmployee selectEmployeeByUserId(Long userId);

    /**
     * 查询指定月份和日期出生的在职员工
     * @param month 月（1-12）
     * @param day   日（1-31）
     * @return 员工列表
     */
    List<HrmEmployee> getEmployeesWithBirthdayOn(int month, int day);

    List<HrmEmployee> selectHrmEmployeeByIds(Long[] ids);

    List<HrmEmployee> listByStatusAndDelFlag(Integer status, Integer delFlag);

    List<HrmEmployee> listByDelFlag(Integer delFlag);
}
